#装饰器不带参数
#闭包：装饰器函数+被装饰器函数，组成的闭包

def deco(func):
    def _deco():
        print("before myfunc() called")
        func()
        print("after myfunc() called")
    return _deco
@deco #等价于编译成：myfunc=deco(myfunc)---》返回闭包：_deco+myfunc
def myfunc():
    print("myfunc() called")
    return 'ok'

#装饰函数deco返回了闭包：_deco（闭包函数）+myfunc(闭包变量，被装饰函数)
#myfunc=闭包：_deco(闭包函数)+myfunc(闭包参数，被装饰函数)
myfunc() #_deco()+myfunc
myfunc() #_deco()+myfunc

